package com.aishua.fire.mapper;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Component;

import com.aishua.fire.entity.activiti.AllSignStateInfo;
import com.aishua.fire.entity.activiti.JiHuaWorkFlowInfo;
import com.aishua.fire.entity.activiti.SignTaskListInfo;
import com.aishua.fire.entity.activiti.SingUserInfo;
import com.aishua.fire.entity.activiti.WuZhiWorkFlowInfo;
import com.aishua.fire.entity.activiti.YuAnProcessReqInfo;
import com.aishua.fire.entity.activiti.YuanProcessInfo;
import com.aishua.fire.entity.activiti.YuanWorkFlowInfo;
import com.aishua.fire.entity.app.AppDutyContentInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyEvacuationReqInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyPreDetailsRespInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyPreReqInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyPreRespInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyWarnReqInfo;
import com.aishua.fire.entity.emergencyPre.EmergencyWarnStartUpReqInfo;
import com.aishua.fire.entity.emergencyPre.OrganizationName;
import com.aishua.fire.entity.emergencyPre.PositionContentInfo;
import com.aishua.fire.entity.emergencyPre.PositionRespInfo;
import com.aishua.fire.entity.emergencyPre.TroubleReqInfo;
import com.aishua.fire.entity.emergencyPre.TroubleRespInfo;

@Component
public interface EmergencyPreMapper {

	void addEmergencyInf(EmergencyPreReqInfo preInfo);

	void updateEmergencyInf(EmergencyPreReqInfo preInfo);

	void delEmergencyInf(String id);

	List<EmergencyPreRespInfo> emergencyPreList(Map<String, String> map);

	List<EmergencyPreDetailsRespInfo> emergencyPreDetails(String id);

	void addPositionInf(Map<String, String> map);

	void addTroubleInf(TroubleReqInfo troubleInfo);

	void updateTroubleInf(TroubleReqInfo preInfo);

	void delTroubleInf(String id);

	List<TroubleRespInfo> troubleList(Map<String, String> map);

	List<EmergencyPreDetailsRespInfo> preDetails(String id);

	List<PositionRespInfo> getPosition(String id);

	void delPositionInf(String id);

	void updatePositionInf(PositionContentInfo info);

	List<AppDutyContentInfo> dutyDetailsByApp(Map<String, String> map);

	void addEvacuationInf(EmergencyEvacuationReqInfo evaInfo);

	void updateEvacuationInf(EmergencyEvacuationReqInfo evaInfo);

	void delEvacuationInf(String id);

	List<EmergencyEvacuationReqInfo> evacuationList(Map<String, String> map);


	List<YuanWorkFlowInfo> getYuanWorkFlow();

	List<JiHuaWorkFlowInfo> getJiHuaWorkFlow();

	List<WuZhiWorkFlowInfo> getWuZhiWorkFlow();

	void startEmergencyState(String id);

	List<SignTaskListInfo> getPositionWithTask(Map<String, String> map);

	void endEergencyState(String pre_id);

	void updateSignStat(Map<String, String> map);

	List<AllSignStateInfo> selectAllSignState(String pre_id);

	YuanProcessInfo getYuanProcessInfo(String pre_id);

	List<SingUserInfo> getYuanSingUserInfo(String pre_id);

	YuAnProcessReqInfo editorYuanProcessInfo(YuAnProcessReqInfo preInfo);

   /**
     * 应急预案管理-添加预案标准(参数)接口
     */
    void addWarnInfo(EmergencyWarnReqInfo warnInfo);

    /**
     * 应急预案管理-添加预案启动标准(参数)接口
     */
    void addWarnStartUpInfo(EmergencyWarnStartUpReqInfo startInfo);

    /**
     * 查询预案详情下的预警标准
     * @param id
     * @return
     */
    List<EmergencyWarnReqInfo> getWarnList(String pre_id);

    /**
     * 查询预案详情下的预警启动标准
     * @param id
     * @return
     */
    List<EmergencyWarnStartUpReqInfo> getWarnStartUpList(String pre_id);

    /**
     * 查询用户角色名称
     * @param position_id
     * @return
     */
    String getUserRoleAndOrganization(String position_id);

    /**
     * 查询用户应急组织名称
     * @param position_id
     * @return
     */
    OrganizationName getUserOrganization(String position_id);

    /**
     * 应急预案管理-删除预案标准(参数)接口
     * @param id
     */
    void delwarnInf(String w_id);

    /**
     * 应急预案管理-删除预案启动标准(参数)接口
     * @param id
     */
    void delwarnstartupInf(String w_id);

    /**
     * 应急预案管理-修改预案标准(参数)接口
     * @param info
     */
    void updateWarnInf(EmergencyWarnReqInfo info);

    /**
     * 应急预案管理-修改预案启动标准(参数)接口
     * @param info
     */
    void updateWarnstartupInf(EmergencyWarnStartUpReqInfo info);
}
